package com.skyworthclub.competition.service;

import com.skyworthclub.competition.beans.User;
import com.baomidou.mybatisplus.service.IService;
import com.skyworthclub.competition.beans.dto.ResetPasswordDto;
import com.skyworthclub.competition.beans.dto.UserRegisterDto;
import org.springframework.transaction.annotation.Transactional;

import java.util.List;

/**
 * <p>
 *  服务类
 * </p>
 *
 * @author li
 * @since 2018-10-15
 */
@Transactional(rollbackFor = Exception.class)
public interface UserService extends IService<User> {
    /** 注册
     * @param userRegisterDto   dto
     * @return  boolean
     */
    boolean register(UserRegisterDto userRegisterDto);

    /** 修改密码
     * @param dto   dto
     * @return  boolean
     */
    boolean updatePassword(ResetPasswordDto dto);

    /** 修改头像
     * @param username  用户名
     * @param avatarUrl 头像图片地址
     * @return  boolean
     */
    boolean updateAvatarUrl(String username, String avatarUrl);

    /** 查询用户个人信息
     * @param username 用户名
     * @return  user
     */
    User getUserInfo(String username);


    /** 用户添加收藏比赛
     * @param username 用户名
     * @param matchId 比赛ID
     * @return  List 收藏比赛的id
     */
    boolean addFav(String username, int matchId);


    /** 列出用户收藏的所有比赛id
     * @param username 用户名
     * @return  List 所有收藏比赛的id
     */
    List<Integer> listFavMatchId(String username);

    /** 用户取消收藏
     * @param username 用户名
     * @param matchId 比赛id
     * @return  boolean
     */
    boolean removeFav(String username, int matchId);
}
